package com.ticket.system.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.Date;
import java.util.List;

@ApiModel(description = "票夹对象")
public class TicketFolderVo {

    /**
     * 演出名称
     */
    @ApiModelProperty(value = "演出名称", dataType = "string")
    private String performName;

    /**
     * 演出海报
     */
    @ApiModelProperty(value = "演出海报", dataType = "string")
    private String performPoster;

    /**
     * 场馆名称
     */
    @ApiModelProperty(value = "场馆名称", dataType = "string")
    private String hallName;

    /**
     * 部门名称
     */
    @ApiModelProperty(value = "部门名称", dataType = "string")
    private String deptName;

    /**
     * 演出区域
     */
    @ApiModelProperty(value = "演出区域", dataType = "string")
    private String performArea;

    /**
     * 演出时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @ApiModelProperty(value = "演出时间", dataType = "date")
    private Date releaseDate;

    /**
     * 演出场次是否实名认证 1：非实名认证；2：实名认证；
     */
    @ApiModelProperty(value = "演出场次是否实名认证 1：非实名认证；2：实名认证；", dataType = "int")
    private Integer autType;

    /**
     * 演出场次状态 0初始化 1已发布 2暂停销售 3取消；
     */
    @ApiModelProperty(value = "演出场次状态 0初始化 1已发布 2暂停销售 3取消", dataType = "int")
    private Integer sessionStatus;


    @ApiModelProperty(value = "1：已占票等待支付，2：已支付，3：超时未支付自动取消  4已验票 5已支付等待退款 6已退款 7退款中 8已过期", dataType = "int")
    private Integer status;

    /**
     * 场次日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "场次日期（格式：yyyy-MM-dd）", dataType = "date")
    private Date sessionDate;

    /**
     * 演出时间
     */
    @ApiModelProperty(value = "演出时间", dataType = "string")
    private String playTime;

    /**
     * 电子票数量
     */
    @ApiModelProperty(value = "电子票数量", dataType = "int")
    private Integer electronicTicketQuantity;

    /**
     * 订单id
     */
    @ApiModelProperty(value = "订单ID", dataType = "int")
    private Long orderId;

    /**
     * 观影须知
     */
    @ApiModelProperty(value = "观影须知", dataType = "string")
    private String performKnow;

    /**
     * 订单提交支付用户Id（下单用户id）
     */
    @ApiModelProperty(value = "下单用户id", dataType = "string", hidden = true)
    private Long orderUserId;
    @ApiModelProperty(value = "出票类型1团购票 2工作票3赠票 4其他")
    private Long ticketWay;

    @ApiModelProperty(value = "其他出票类型")
    private String ticketWayName;

    @ApiModelProperty(value = "购票类型 1小程序购票 2后台出票")
    private Long ticketType;

    /**
     * 票夹详情（集合）
     */
    @ApiModelProperty(value = "票夹详情（集合）", dataType = "TicketFolderDetailVo")
    private List<TicketFolderDetailVo> ticketFolderDetailList;
    public Long getTicketType() {
        return ticketType;
    }

    public void setTicketType(Long ticketType) {
        this.ticketType = ticketType;
    }

    public String getPerformName() {
        return performName;
    }

    public void setPerformName(String performName) {
        this.performName = performName;
    }

    public String getPerformPoster() {
        return performPoster;
    }

    public void setPerformPoster(String performPoster) {
        this.performPoster = performPoster;
    }

    public String getHallName() {
        return hallName;
    }

    public void setHallName(String hallName) {
        this.hallName = hallName;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public String getPerformArea() {
        return performArea;
    }

    public void setPerformArea(String performArea) {
        this.performArea = performArea;
    }

    public Date getReleaseDate() {
        return releaseDate;
    }

    public void setReleaseDate(Date releaseDate) {
        this.releaseDate = releaseDate;
    }

    public Integer getAutType() {
        return autType;
    }

    public void setAutType(Integer autType) {
        this.autType = autType;
    }

    public Integer getSessionStatus() {
        return sessionStatus;
    }

    public void setSessionStatus(Integer sessionStatus) {
        this.sessionStatus = sessionStatus;
    }

    public Date getSessionDate() {
        return sessionDate;
    }

    public void setSessionDate(Date sessionDate) {
        this.sessionDate = sessionDate;
    }

    public String getPlayTime() {
        return playTime;
    }

    public void setPlayTime(String playTime) {
        this.playTime = playTime;
    }

    public Integer getElectronicTicketQuantity() {
        return electronicTicketQuantity;
    }

    public void setElectronicTicketQuantity(Integer electronicTicketQuantity) {
        this.electronicTicketQuantity = electronicTicketQuantity;
    }

    public Long getOrderId() {
        return orderId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public String getPerformKnow() {
        return performKnow;
    }

    public void setPerformKnow(String performKnow) {
        this.performKnow = performKnow;
    }

    public Long getOrderUserId() {
        return orderUserId;
    }

    public void setOrderUserId(Long orderUserId) {
        this.orderUserId = orderUserId;
    }

    public List<TicketFolderDetailVo> getTicketFolderDetailList() {
        return ticketFolderDetailList;
    }

    public void setTicketFolderDetailList(List<TicketFolderDetailVo> ticketFolderDetailList) {
        this.ticketFolderDetailList = ticketFolderDetailList;
    }


    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }


    public Long getTicketWay() {
        return ticketWay;
    }

    public void setTicketWay(Long ticketWay) {
        this.ticketWay = ticketWay;
    }

    public String getTicketWayName() {
        return ticketWayName;
    }

    public void setTicketWayName(String ticketWayName) {
        this.ticketWayName = ticketWayName;
    }
}
